package com.neusoft.NursingHome.service;

import com.neusoft.NursingHome.po.BedInformation;
import java.util.List;

public interface BedInformationService {

    /**
     * 返回床位总数
     * @return 床位总数
     */
    Integer getBedCount();

    /**
     * 返回空闲床位总数（状态=0）
     * @return 空闲床位总数
     */
    Integer getFreeBedCount();

    /**
     * 返回占用床位总数（状态=2）
     * @return 占用床位总数
     */
    Integer getBusyBedCount();

    /**
     * 返回外出床位总数（状态=1）
     * @return 外出床位总数
     */
    Integer getOutBedCount();

    /**
     * 返回所有楼层（去重）
     * @return 楼层列表
     */
    List<String> getFloors();

    /**
     * 返回指定楼层下的所有房间（去重）
     * @param floor 楼层号
     * @return 房间列表
     */
    List<String> getRoomsByFloor(String floor);

    /**
     * 返回指定房间下的所有床位信息
     * @param room 房间号
     * @return 床位信息列表
     */
    List<BedInformation> getBedsByRoom(String room);

    /**
     * 更新床位状态
     * @param bedId 床位ID
     * @param status 新状态（0:空闲 1:外出 2：有人）
     * @return 更新是否成功
     */
    boolean updateBedStatus(Integer bedId, Byte status);

    /**
     * 添加床位信息
     * @param bedInformation 床位信息对象
     * @return 添加是否成功
     */
    boolean addBedInfo(BedInformation bedInformation);

    /**
     * 获取床位的详细信息
     * @param bedId 床位ID
     * @return 床位详细信息
     */
    BedInformation getBedInfoById(Integer bedId);

    /**
     * 删除床位信息（逻辑删除）
     * @param bedId 床位ID
     * @return 删除是否成功
     */
    boolean deleteBedInfo(Integer bedId);
}